Fix slew rate limiter drift when stopping #16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
My team was observing strange drifting behavior having to do with the slew rate limiter when coasting to a stop. The issue is that when a 0-velocity target is added to the slew rate limiter, a default angle of 0-degrees is assumed which results in the direction of travel getting smoothed across a range of angles from whatever initial angle existed back to 0 degrees - creating a curved trajectory.
The video shows a simulation of a non rate-limited swerve target, the current rate limiting implementation (yellow) and my new implementation (green).
2023-12-23.20-46-52.mp4
Finally, it should be noted that the slew rate constants now have physical units (acceleration) but I have not renamed them - this can be changed if deemed necessary.